package main

import (
	"fmt"
	"github.com/garyburd/redigo/redis"
)

func main() {
	//c, err := redis.DialURL("redis://123456@123.57.53.90:6379")
	c, err := redis.Dial("tcp", "123.57.53.90:6379",redis.DialPassword("123456"))
	if err != nil {
		fmt.Println("conn redis failed,", err)
		return
	}
	//设置密码
	//if _, err := c.Do("AUTH", "123456"); err != nil {
	//	return
	//}

	defer c.Close()
	_, err = c.Do("Set", "abc", 10000)
	//批量操作
	//_, err = c.Do("MSet", "t", 10000,"v",999)
	if err != nil {
		fmt.Println(err)
		return
	}

	r, err := redis.Int(c.Do("Get", "abc"))
	//批量操作
	//r1, err := redis.Ints(c.Do("MGet", "t","v"))
	if err != nil {
		fmt.Println("get abc failed,", err)
		return
	}

	fmt.Println(r)



        //批量操作
	_, err = c.Do("MSet", "abc", 100, "efg", 300)
	if err != nil {
		fmt.Println(err)
		return
	}

	r1, err := redis.Ints(c.Do("MGet", "abc", "efg"))
	if err != nil {
		fmt.Println("get abc failed,", err)
		return
	}

	for _, v := range r1 {
		fmt.Println(v)
	}




	//设置过期时间
	//_, err = c.Do("expire", "abc", 10)
	//if err != nil {
	//	fmt.Println(err)
	//	return
	//}


	//list操作
	_, err = c.Do("lpush", "book_list", "abc", "ceg", 300)
	if err != nil {
		fmt.Println(err)
		return
	}

	rlist, err := redis.String(c.Do("lpop", "book_list"))
	if err != nil {
		fmt.Println("get abc failed,", err)
		return
	}

	fmt.Println(rlist)






	//hset
	_, err = c.Do("HSet", "books", "abc", 100)
	if err != nil {
		fmt.Println(err)
		return
	}

	rhash, err := redis.Int(c.Do("HGet", "books", "abc"))
	if err != nil {
		fmt.Println("get abc failed,", err)
		return
	}

	fmt.Println(rhash)

}